var raiz_consulta = "/SISINF-PNP/consultar-expediente";
var raiz_digitaliza = "/SISINF-PNP/digitalizar";
var raiz = "/SISINF-PNP";
var regExpedienteActual = null;
var regDocumentoActual = null;
var idFolios = null;
var indiceFolioActual = 0;
var localUsuario=null;

function consultarExpediente(){

    var frmCriterios = new Ext.Panel({
        bodyStyle: "background-color:#DFE8F6; border:0",
        autoLoad: raiz_consulta+"/frmCriterios.jsp"
    });

    var dsExpedientes = new Ext.data.Store({
        url: raiz_consulta+"/obtener-expedientes-indices.jsp",
        autoDestroy: true,
        reader: new Ext.data.JsonReader({
            root: "expedientes",
            fields:[
                { name: "numeroExpediente" },
                { name: "nombreCompleto" },
                { name: "grado" },
                { name: "folios" },
                { name: "id" }
            ]
        })
    });
    dsExpedientes.on("load",function(store,records,options){
        if(records.length == 0){
            var mensaje="No se encontró ningún expediente.";
            Information("Confirmación", mensaje);
        }
    });

    var grdExpedientes = new Ext.grid.GridPanel({
        id: "grdExpedientes",
        store: dsExpedientes,
        height: 200,
        border: false,
        columns:[new Ext.grid.RowNumberer(),{
            header: "Nro. Exp.",
            dataIndex: "numeroExpediente",
            width: 100
        },{
            header: "Causante",
            dataIndex: "nombreCompleto",
            width: 400
        },{
            header: "Grado",
            dataIndex: "grado",
            width: 180
        },{
            header: "Nro. Imagenes Exp",
            dataIndex: "folios",
            width: 120
        }]

    });
    grdExpedientes.on("rowclick", function(grid,rowIndex,e){
        regExpedienteActual = dsExpedientes.getAt(rowIndex);
        obtenerDocumentosExpediente();
    });
    var dsDocumentos = new Ext.data.Store({
        url: raiz_consulta+"/obtener-documentos-expediente.jsp",
        autoDestroy: true,
        reader: new Ext.data.JsonReader({
            root: "documentos",
            fields:[
                { name: "id" },
                { name: "idTipoDocumento" },
                { name: "descripcionTipoDocumento" },
                { name: "descripcion" }
            ]
        })
    });
    var grdDocumentos = new Ext.grid.GridPanel({
        id: "grdDocumentos",
        store: dsDocumentos,
        height: 215,
        border: false,
        columns:[new Ext.grid.RowNumberer(),{
            header: "Tipo Documento",
            dataIndex: "descripcionTipoDocumento",
            width: 150
        },{
            header: "Descripcion",
            dataIndex: "descripcion",
            width: 400
        }],
        tbar:[{
            text: "Ver Imagenes",
            iconCls:'icon-folio',
            handler: function(){
                verFolios(regDocumentoActual.get("id"));
            }
        }
        ]

    })
    grdDocumentos.on("rowclick", function(grid,rowIndex,e){
        regDocumentoActual = dsDocumentos.getAt(rowIndex);
    });
    var win = new Ext.Window({
        title:'Consultas de Expedientes',
        closeAction:'destroy',
        width:900,
        height:500,
        x:0,
        y:0,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        items:[frmCriterios,grdExpedientes,grdDocumentos]

    });
    win.show();
}

function buscarExpedientes(){
    var form = document.getElementById("frmCriterios");
    var opcion = 0;
    for(var i = 0;i<form.opcion.length;i++){
        if (form.opcion[i].checked){
            opcion = form.opcion[i].value;
            break;
        }
    }
    var criterio = form.criterio.value;
    if (criterio.length>=2){
    var grdExpedientes = Ext.getCmp("grdExpedientes");
    var dsExpedientes = grdExpedientes.getStore();
    var grdDocumentos = Ext.getCmp("grdDocumentos");
    var dsDocumentos = grdDocumentos.getStore();
    dsExpedientes.load({
        params: {
            opcion: opcion,
            criterio: criterio
        }
    });
    dsDocumentos.load({
        params:{
        id:-99
        }
    });
    }else{
        alert("Debe Ingresar 2 Caracteres como minimo para realizar la busqueda");
    }
}

function obtenerDocumentosExpediente(){
    var id = regExpedienteActual.get("id");
    if (id==null || id==""){
        id=-99;
    }
    var grdDocumentos = Ext.getCmp("grdDocumentos");
    var dsDocumentos = grdDocumentos.getStore();
    dsDocumentos.load({
        params:{
            id: id
        }
    });
}

function verFolios(_id){
    var id = _id;//regDocumentoActual.get("id");
    new Ajax.Request(raiz_consulta+"/obtener-folios-documento.jsp",{
        method: "post",
        parameters: {
            id: id
        },
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            idFolios = data.folios;
            verFolio();
        }
    });
}

function verFolio(){
    var win = new Ext.Window({
        modal: true,
        title:'Vista Previa del Documento',
        closeAction:'destroy',
        width:800,
        height:500,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        autoScroll: true,
        autoLoad: {
            url:  raiz_consulta+"/ver-folio.jsp",
            callback: function(el,success,response,options){
                if (idFolios.length == 0){
                    Information("Error", "No hay folios en este documento");
                } else {
                    verFolioIndice(0);
                }
               
            }
        },
        bbar: [{
            text:'Cerrar',
            iconCls:'icon-cancel',
            handler: function(){
                win.destroy();
            }
        },"-",{
            text: "Imprimir",
            iconCls: "icon-print",
            handler: function(){
                imprimirFolio();
            }
        }]
    });
    win.show();
}

function verFolioSiguiente(){
    indiceFolioActual++;
    if (indiceFolioActual > idFolios.length - 1) {
        indiceFolioActual = 0;
    }
    verFolioIndice(indiceFolioActual);
}

function verFolioAnterior(){
    indiceFolioActual--;
    if (indiceFolioActual < 1) {
        indiceFolioActual = idFolios.length - 1;
    }
    verFolioIndice(indiceFolioActual);
    
}

function verFolioActual(){
    var txtFolioActual = document.getElementById("txtFolioActual");
    indiceFolioActual = txtFolioActual.value - 1;
    verFolioIndice(indiceFolioActual);
}

function verFolioIndice(indice){
    var txtFolioActual = document.getElementById("txtFolioActual");
    txtFolioActual.value = indiceFolioActual + 1;
    var spnTotalFolios = document.getElementById("spnTotalFolios");
    spnTotalFolios.innerHTML = idFolios.length;
    var img = document.getElementById("imagenFolio");
    img.src = raiz+"/digitalizar/VistaPreviaFolioConsulta.jpg?id="+idFolios[indice].id;
}

function irFolioActual(e){
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==13) verFolioActual();

}

function imprimirFolio(){
    var src = raiz+"/digitalizar/VistaPreviaFolio.jpg?id="+idFolios[indiceFolioActual].id;
    new Ajax.Request("imprimir-folio.jsp",{
        method: "post",
        parameters: {
            src : src
        },
        onSuccess: function(t){
            var w = window.open("about:blank", "imprimir");
            w.document.open();
            w.document.write(t.responseText);
            w.document.close();
        },
        onFailure: function(t){
            alert(t.responseText);
        }
    });
}

function buscarPersonalExpediente() {
    
    regPersonaActual = null;
    var dsPersonal = new Ext.data.Store({
        url: raiz_digitaliza+"/obtener-personal.jsp",
        autoDestroy: true,
        reader: new Ext.data.JsonReader({
            root: "personas",
            fields:[
                { name: "id" },
                { name: "nombreCompleto" },
                { name: "cpers_codofin", type: "string" },
                { name: "cpers_nrocip", type: "string" },
                { name: "cpers_unidad", type: "string" },
                { name: "cpers_nrodni", type: "string" },
                { name: "cgrad_descripcion", type: "string" }
            ]
        })
    });

    var grdPersonal = new Ext.grid.GridPanel({
        id: "grdPersonal",
        store: dsPersonal,
        height: 300,
        border: true,
        plugins:[new Ext.ux.grid.Search({
            mode:'local',
            searchText: 'Filtrar sobre el resultado',
            iconCls:false,
            minLength:2,
            width: 350
        })],
        columns:[{
            header: "DNI",
            dataIndex: "cpers_nrodni",
            sortable:true,
            width: 80
        },{
            header: "Apellidos y Nombres",
            dataIndex: "nombreCompleto",
            width: 350
        },{
            header: "Nro CIP",
            dataIndex: "cpers_nrocip",
            sortable:true,
            width: 100
        },{
            header: "GRADO",
            dataIndex: "cgrad_descripcion",
            sortable:true,
            width: 150
        }],
        tbar:['']
    });

    grdPersonal.on("rowclick", function(grid,rowIndex,e){
        regPersonaActual = dsPersonal.getAt(rowIndex);
    });

    grdPersonal.on("rowdblclick", function(grid,rowIndex,e){
        seleccionarPersonaEx();
    });

    var frmBuscarPersonal = new Ext.Panel({
        bodyStyle: "background-color:#DFE8F6; border:0",
        autoLoad: "frmBuscarPersonal.html"
    });

    var pnlBuscarPersonal = new Ext.Panel({
        items:[frmBuscarPersonal,grdPersonal]
    });

    var win = new Ext.Window({
        id: "winBuscarPersonalEx",
        modal: true,
        title:'Buscar en Maestro Policial - MASPOL',
        closeAction:'destroy',
        width:700,
        height: 400,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        items:[pnlBuscarPersonal],
        bbar:[{
            text: "Seleccionar",
            iconCls:'icon-selector',
            handler: function(){
                seleccionarPersonaEx();
            }
        },'-',{
            text:'Cancelar',
            iconCls:'icon-cancel',
            handler: function(){
                var winBuscarPersonal = Ext.getCmp("winBuscarPersonalEx");
                winBuscarPersonal.destroy();
            }
        }]
    });
    win.show();
}

function seleccionarPersonaEx(){   
    var winBuscarPersonal = Ext.getCmp("winBuscarPersonalEx");
    if (regPersonaActual == null) {
        Information("Error", "Debe seleccionar una persona");
        return;
    }
    var form = document.getElementById("frmCriterios");
    var form_b = document.getElementById("frmBuscarAdministrado");
    var id = regPersonaActual.get("id");
    var nombre = regPersonaActual.get("nombreCompleto");
    var grado = regPersonaActual.get("cgrad_descripcion");
    form.nombre.value = nombre;
    form.grado.value = grado;
    form_b.grado.value = grado;
    winBuscarPersonal.destroy();
    var grdExpedientes = Ext.getCmp("grdExpedientes");
    var dsExpedientes = grdExpedientes.getStore();
    dsExpedientes.reload({
        params: {
            opcion: 4,
            criterio: id
        }
    });
}

function filtrarPersonalMaspolexp(){
    if ($("apellidoPaterno").value!="" || $("apellidoMaterno").value!="" || $("nombres").value !="" ){
        if ($("apellidoPaterno").value.length >= 3 || $("apellidoMaterno").value.length >= 3 || $("nombres").value.length >= 3 ){
            obtenerPersonalexp();
        }else{
            alert("Debe ingresar por lo menos 3 letras en algun criterio para realizar la busqueda");
        }
    }else{
        alert("Debe ingresar un criterio de busqueda");
    }
}

function obtenerPersonalexp() {
    var grdPersonal = Ext.getCmp("grdPersonal");
    var dsPersonal = grdPersonal.getStore();
    var form = document.getElementById("frmBuscarAdministrado");
    var apellidoPaterno = form.apellidoPaterno.value;
    var apellidoMaterno = form.apellidoMaterno.value;
    var nombres = form.nombres.value;
    dsPersonal.load({
        params: {
            apellidoPaterno: apellidoPaterno,
            apellidoMaterno: apellidoMaterno,
            nombres: nombres
        }
    });
}
